home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 11 / CU Amiga Magazine's Super CD-ROM 11 (1997)(EMAP Images)(GB)(Track 1 of 3)[!][issue 1997-06].iso / s / setpagesize.pprx < prev    next >
Text File  |  1992-03-14  |  2KB  |  105 lines

  1. /*
  2. @BSetPageSize  @P@ICopyright Gold Disk Inc., January, 1992
  3.  
  4. This genie will set the page size for a range of pages.
  5. */
  6. cr = '0a'x
  7. pageopts = "OODDEEVENAALL"
  8. address command
  9. call SafeEndEdit.rexx()
  10. call ppm_AutoUpdate(0)
  11.  
  12. units = ppm_GetUnits()
  13. if units = 3 then
  14.     call ppm_SetUnits(1)
  15.  
  16. signal on halt
  17. signal on break_c
  18. signal on break_e
  19. signal on break_d
  20.  
  21. cpage = ppm_CurrentPage()
  22. last = ppm_DocLastPage()
  23. pagesize = ppm_GetPageSize(cpage)
  24. pwidth    = word(pagesize, 1)
  25. pheight = word(pagesize, 2)
  26.  
  27. if units = 3 then
  28. do
  29.     form    = "Page Width:" || ppm_ConvertUnits(1, 3, pwidth) || cr"Page Height:" || ppm_ConvertUnits(1, 3, pheight) || cr"Start Page:"cpage ||cr"End Page:"last ||cr"ODD/EVEN/ALL"
  30. end
  31. else
  32.     form    = "Page Width:"pwidth||cr"Page Height:"pheight||cr"Start Page:"cpage||cr"End Page:"last||cr"ODD/EVEN/ALL:"ALL
  33.  
  34. form    = upper(ppm_GetForm("Enter Info", 12, form))
  35. if form = '' then call exit_msg()
  36. parse var form width '0a'x height '0a'x startpage '0a'x endpage '0a'x pageopt
  37.  
  38. if pageopt = '' then pageopt = "ALL"
  39.  
  40. if ~(datatype(width, n) & datatype(height, n) & datatype(startpage, n) & datatype(endpage, n))  | pos(pageopt, pageopts) = 0 then
  41.     call exit_msg("Invalid Entry")
  42.  
  43. if units = 3 then
  44. do
  45.     width = ppm_ConvertUnits(3,1, width)
  46.     height = ppm_ConvertUnits(3,1, height)
  47. end
  48.  
  49. first       = ppm_DocFirstPage()
  50. pageopt     = left(pageopt,1)
  51. increment   = 1
  52.  
  53. if pageopt = 'O' then
  54. do
  55.     increment   = 2
  56.     if ~(startpage // 2) then startpage = startpage + 1
  57. end
  58. else if pageopt = 'E' then
  59. do
  60.     increment   = 2
  61.     if (startpage // 2) then startpage = startpage + 1
  62. end
  63. else if pageopt = 'A' then
  64. do
  65.     startpage   = first
  66.     endpage     = last
  67. end
  68.  
  69. if (startpage < first) | (startpage > last) | (endpage < first) | (endpage > last) | (width > 48) | (width < 0) | (height > 48) | (height < 0) then
  70.     call exit_msg('Invalid input')
  71.  
  72. if startpage > endpage then
  73. do
  74.     temp        = startpage
  75.     startpage   = endpage
  76.     endpage     = temp
  77. end
  78.  
  79. page    = ppm_GotoPage(startpage)
  80.  
  81. do i = startpage to endpage by increment
  82.  
  83.     call ppm_SetPageSize(i, width,height)
  84.  
  85. end
  86.  
  87. exit_msg()
  88.  
  89. break_d:
  90. break_e:
  91. break_c:
  92. halt:
  93.     call exit_msg("User aborted Genie!")
  94.  
  95. exit_msg: procedure  expose units
  96. do
  97.     parse arg message
  98.  
  99.     if message ~= '' then call ppm_Inform(1, message,)
  100.     call ppm_ClearStatus()
  101.     call ppm_SetUnits(units)
  102.     call ppm_AutoUpdate(1)
  103.     exit
  104. end
  105.